1. Field of the Invention
The present invention relates to the field of circuits including a microprocessor associated with other functions, peripheral or not. These are, for example, microcontrollers or other more complex circuits including a microprocessor, peripherals and/or any other processing device, for example, another microprocessor, a digital signal processing circuit (DSP), etc.
The present invention more specifically relates to bi-processor systems where one of the processors must momentarily provide its peripherals to another processor. This may be, for example, the emulation of an embedded microprocessor, that is, of a processor integrated in a circuit of which it only is a portion and having inputs/outputs which are not accessible from the outside of the integrated circuit. During the emulation, the peripherals of the embedded processor are under control of an external microprocessor physically or virtually reproducing the embedded microprocessor. Any block having its operation controlled by the microprocessor, such as timers, input/output ports, memories, etc. is defined as a peripheral.
2. Discussion of the Related Art
The present invention will be described hereafter in relation with an example of application to the emulation of an embedded microprocessor. However, it more generally applies to any system using two processors and requiring for one of the processors to take control over peripherals of the other processor, as well as to the testing of the functionalities of peripherals of an embedded microprocessor.
The emulation consists of controlling the development of a program while modifying its environment as little as possible. Most often, embedded processor must be emulated in their operating conditions on an application board. In other words, they are associated with other circuits, peripheral or not, formed for example of integrated circuits with which they are assembled on a printed circuit board. The present invention more specifically applies to emulators for which the circuit to be emulated remains connected on the application board.
A first emulation solution consists of replacing the circuit integrating the microprocessor of the application board with a probe, connected to an intermediary interface board on which is assembled a specific microprocessor reproducing the characteristics of the embedded microprocessor. This specific microprocessor, known as the “bound-out chip”, makes accessible, from input/output terminals of the integrated circuit, the connections of the internal bus of the embedded microprocessor. With such a solution, the executed program is stored in a memory of the emulator instead of being stored in a memory integrated with the embedded microprocessor. The control of the bus of access to these memories enables obtaining high-performance emulation functionalities such as the recording of the trace, the performance analysis or the code coverage analysis. The major disadvantage of this solution is that all the functions of the replaced circuit must be implemented in the emulator. This solution must thus be adapted to each application of the circuit. Another disadvantage of such a solution is that it does not leave the integrated circuit to be emulated in its real operating conditions. In particular, the tested circuit does not correspond to the real circuit.
A second known solution, derived from the first one, consists, to reduce the number of terminals of the integrated circuit containing the microprocessor to be emulated, of using multiplexers to share its input/output terminals. A disadvantage of this solution is that this does not enable testing the circuit in real operating conditions. Like the first solution, this solution is not versatile and must be adapted to each application of the circuit.
A third solution, known as the BDM or Nexus solution, consists of leaving the program execution to the embedded micro-processor and of monitoring its operation via a link to an external device. Such an emulation solution using only resources internal to the circuit, provides only few high-performance emulation functionalities such as those listed for the first solution.